MongoDB এর সাথে FastAPI ইন্টিগ্রেশন

Web Development - ফাস্টএপিআই (FastAPI) - FastAPI এবং MongoDB Integration
225

FastAPI এবং MongoDB-এর ইন্টিগ্রেশন খুবই সহজ এবং কার্যকরী। MongoDB একটি NoSQL ডাটাবেস যা JSON-স্টাইল ডকুমেন্ট ব্যবহার করে ডাটা সংরক্ষণ করে। FastAPI-র সাথে MongoDB ব্যবহার করতে Motor লাইব্রেরি ব্যবহার করা হয়, যা MongoDB এর জন্য একটি অ্যাসিঙ্ক্রোনাস ড্রাইভার। এটি FastAPI তে MongoDB এর সাথে ইন্টিগ্রেশন করতে সহায়তা করে এবং অ্যাসিঙ্ক্রোনাস কোড পরিচালনা করতে পারে।


Step 1: MongoDB ইনস্টলেশন

MongoDB ব্যবহার করার জন্য প্রথমে motor লাইব্রেরি ইনস্টল করতে হবে। Motor হলো MongoDB এর অ্যাসিঙ্ক্রোনাস ড্রাইভার, যা asyncio এর উপর ভিত্তি করে কাজ করে।

pip install motor

এছাড়া, MongoDB সার্ভার আপনার সিস্টেমে ইনস্টল থাকতে হবে অথবা আপনি MongoDB এর একটি ক্লাউড সার্ভিস (যেমন MongoDB Atlas) ব্যবহার করতে পারেন।


Step 2: FastAPI এবং MongoDB কনফিগারেশন

FastAPI এবং MongoDB এর ইন্টিগ্রেশন করতে হলে, প্রথমে MongoDB এর সাথে সংযোগ স্থাপন করতে হবে। এখানে আমরা MongoDB এর Motor ড্রাইভার ব্যবহার করব।

উদাহরণ: MongoDB কনফিগারেশন FastAPI তে

from fastapi import FastAPI
from motor.motor_asyncio import AsyncIOMotorClient
from pydantic import BaseModel
from typing import List

app = FastAPI()

# MongoDB Client কনফিগারেশন
@app.on_event("startup")
async def startup_db():
    app.mongodb_client = AsyncIOMotorClient("mongodb://localhost:27017")
    app.database = app.mongodb_client.test_db  # MongoDB Database Name

@app.on_event("shutdown")
async def shutdown_db():
    app.mongodb_client.close()

# Pydantic Model
class Item(BaseModel):
    name: str
    description: str

# MongoDB Collection থেকে ডাটা রিড করার ফাংশন
@app.get("/items/", response_model=List[Item])
async def get_items():
    items_cursor = app.database.items.find()  # MongoDB Collection
    items = await items_cursor.to_list(length=100)
    return items

# MongoDB Collection-এ ডাটা ইনসার্ট করার ফাংশন
@app.post("/items/")
async def create_item(item: Item):
    item_dict = item.dict()
    result = await app.database.items.insert_one(item_dict)  # MongoDB Collection Insert
    return {"id": str(result.inserted_id), **item_dict}

ব্যাখ্যা:

  • MongoDB সংযোগ (Connection): AsyncIOMotorClient ব্যবহার করে MongoDB সার্ভারের সাথে অ্যাসিঙ্ক্রোনাস সংযোগ তৈরি করা হয়েছে।
  • startup_db এবং shutdown_db: অ্যাপ্লিকেশন শুরু এবং শেষ হওয়ার সময় MongoDB সংযোগ তৈরি ও বন্ধ করতে ব্যবহৃত হচ্ছে।
  • Item মডেল: Pydantic মডেল যা MongoDB থেকে ডাটা ইনপুট এবং আউটপুটের জন্য ব্যবহৃত হয়।
  • get_items: MongoDB থেকে ডাটা রিড করার ফাংশন।
  • create_item: MongoDB-তে ডাটা ইনসার্ট করার ফাংশন।

Step 3: MongoDB-তে ডাটা ইনসার্ট এবং রিড করা

FastAPI অ্যাপ্লিকেশন তৈরি করার পর আপনি MongoDB-তে ডাটা ইনসার্ট এবং রিড করতে পারবেন।

ডাটা ইনসার্ট করার জন্য:

POST /items/

Body:

{
  "name": "Laptop",
  "description": "A high-performance laptop"
}

রেসপন্স:

{
  "id": "605c72ef153207232b0d1985",
  "name": "Laptop",
  "description": "A high-performance laptop"
}

MongoDB থেকে ডাটা রিড করার জন্য:

GET /items/

রেসপন্স:

[
  {
    "id": "605c72ef153207232b0d1985",
    "name": "Laptop",
    "description": "A high-performance laptop"
  },
  {
    "id": "605c72ef153207232b0d1986",
    "name": "Smartphone",
    "description": "A powerful smartphone"
  }
]

এখানে, আমরা MongoDB থেকে সমস্ত items সংগ্রহ করে JSON আকারে রিটার্ন করেছি।


Step 4: MongoDB-এর সাথে অ্যাসিঙ্ক্রোনাস কনফিগারেশন

FastAPI এবং Motor ব্যবহারের ফলে, MongoDB এর সাথে অ্যাসিঙ্ক্রোনাস কোড পরিচালনা করা সম্ভব। MongoDB-এর সাথে ডাটাবেস অপারেশনগুলি অ্যাসিঙ্ক্রোনাসভাবে করা হয়, যাতে অ্যাপ্লিকেশনটি দ্রুত এবং স্কেলেবল হয়।

উদাহরণ: অ্যাসিঙ্ক্রোনাস ডাটা রিড এবং আপডেট

@app.put("/items/{item_id}")
async def update_item(item_id: str, item: Item):
    result = await app.database.items.update_one(
        {"_id": item_id},
        {"$set": item.dict()}
    )
    if result.modified_count == 1:
        return {"message": "Item updated successfully"}
    return {"message": "Item not found"}

@app.delete("/items/{item_id}")
async def delete_item(item_id: str):
    result = await app.database.items.delete_one({"_id": item_id})
    if result.deleted_count == 1:
        return {"message": "Item deleted successfully"}
    return {"message": "Item not found"}

এখানে:

  • update_item: MongoDB ডকুমেন্ট আপডেট করা।
  • delete_item: MongoDB ডকুমেন্ট মুছে ফেলা।

Step 5: MongoDB Atlas এর সাথে সংযোগ (Cloud Database)

MongoDB Atlas একটি ক্লাউড-ভিত্তিক MongoDB ডাটাবেস পরিষেবা। আপনি MongoDB Atlas ব্যবহার করে MongoDB-এর ক্লাউড ইনস্ট্যান্সের সাথে সংযোগ করতে পারেন।

MongoDB Atlas এ একটি ডাটাবেস তৈরি করে তার Connection String ব্যবহার করে FastAPI-র সাথে MongoDB সংযোগ করতে পারবেন।

উদাহরণ: MongoDB Atlas কনফিগারেশন

from fastapi import FastAPI
from motor.motor_asyncio import AsyncIOMotorClient

app = FastAPI()

@app.on_event("startup")
async def startup_db():
    app.mongodb_client = AsyncIOMotorClient("your_mongodb_atlas_connection_string")
    app.database = app.mongodb_client.test_db

@app.on_event("shutdown")
async def shutdown_db():
    app.mongodb_client.close()

এখানে your_mongodb_atlas_connection_string MongoDB Atlas থেকে প্রাপ্ত সংযোগ স্ট্রিং।


FastAPI এবং MongoDB (Motor ড্রাইভার ব্যবহার করে) এর ইন্টিগ্রেশন খুবই সহজ এবং কার্যকরী। আপনি অ্যাসিঙ্ক্রোনাস কোড ব্যবহার করে MongoDB ডাটাবেসের সাথে দ্রুত এবং স্কেলেবল অ্যাপ্লিকেশন তৈরি করতে পারেন। MongoDB এবং FastAPI এর এই ইন্টিগ্রেশন ব্যবহারের মাধ্যমে আপনি সহজে ডাটা সংগ্রহ, ইনসার্ট, আপডেট, এবং ডিলিট অপারেশনগুলো পরিচালনা করতে পারবেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...